package com.Lgwd.service.backService;

import com.Lgwd.dao.BackDao;
import com.Lgwd.dao.ItemDao;
import com.Lgwd.entity.BackInfoEntity;
import com.Lgwd.entity.UserEntiy;

import java.util.List;

public interface BackInfoService {


    /**
     * 物品掉落添加到背包
     *
     */

    void addItemToUserBack(ItemDao itemDao,String user_account,String itemid);


    /**
     * 查看背包物品 ==前台点击打开背包后调用
     * 根据账号   和 flag字段查询
     * 返回所有字段
     * 关键字段item_id
     * moral_type_id装备类型ID代表每个部位只能装备一个类型
     * equip是否已穿戴 默认0
     * item_profession 所属职业 1战士 2法师  0其他道具
     */
    List<BackInfoEntity> findAllByUserAccountAndFlag(BackDao backDao);



    /**
     * 用户操作 针对于装备  有 穿戴  卸下  删除
     *
     * 穿戴该装备时 更新user表对应数据
     * 根据item_id获取到 装备的所有属性
     * 根据传入账号获取到user对应的属性
     * 穿戴前判断是否已装备同类型装备  已装备进行替换  没有装备则进行装备  根据equip,item_profession,moral_type_id判断是否装备
     * 判断是否是该职业武器
     * 设置完所有信息
     * 最终返回user数据  更新背包物品数据
     *
     * 卸下操作
     * user表数据-装备属性 进行更新  武器可装备状态进行更新
     *
     * 删除操作
     * 物理删除根据item_id,flag字段删除backinfo表装备  与表关联的数据表useriteminfo
     * 删除时候优先判断是否已穿戴
     */
    UserEntiy updateUserPropertyAndUseItem(BackDao backDao);

    //卸下装备
    UserEntiy updateUserItemDown(BackDao backDao);

    List<BackInfoEntity> deleteItem(BackDao backDao);

}
